# 数据类型
"""
作用：让计算机能够识别人类输入指令信息表示的含义
数字型：整型int、浮点型float、布尔型bool（布尔型中非0即为真）
非数字型：字符串str（例："张三"）、列表list（例：[ ]）、元组tuple（例：( )）、
        集合set（例：{ }）、字典dict（例：{键:值}）
        元组使用小括号，列表使用中括号，集合使用大括号，字典使用大括号里面键值对
想查看数据的类型函数type(数据/变量名)
把结果输出到控制台：print(被打印的对象)
"""

# 数据类型
num1 = 24
num2 = 37.1
num3 = True
# 知道上面变量的数据类型，通过print(对象)
print(type(num1))
print(type(num2))
print(type(num3))

# 非数据类型
a1 = ("12","abc")
a2 = ['14','45','abc','黄油']
a3 = {'14','45','abc','黄油'}
a4 = {'name':'小华','age':'45'}
a5 = ('anb')
print(type(a1))
print(type(a2))
print(type(a3))
print(type(a4))
print(type(a5))

#字符串
e = "hello world"
#列表
f = [1,2,3,4,5]
#元组
g = (2,3,4,5,6)
#集合
h = {3,4,5,6,7}
#字典
i = {"name":"张三","age":18}

#查看数据类型
print(type(e))    #字符串：<class 'str'>
print(type(f))    #列表：<class 'list'>
print(type(g))    #元组：<class 'tuple'>
print(type(h))    #集合：<class 'set'>
print(type(i))    #字典：<class 'dict'> -----> dictionary

"""
强制类型转换
目的：将一种类型转化为另一种类型
场景：得到的结果不是我们想要的数据类型，则可以直接通过函数进行转换
函数int(x) ,将x转换为一个整数（x='147147'),x是字符串时，必须时整数类型的字符串
函数float(x),将x转换为一个浮点数（x='14.21'）,x是字符串时，只要是数字类型的字符串即可
函数str(x)，将x转换为字符串，任意数字类型x都可以转换为字符串类型
函数tuple(s),将序列s转换为一个元组（s=[1,7,6]）
函数list(s)，将序列s转换为一个列表（s=(2,8,7)）
"""
shuzi1 = '14'
shuzi2 = '8.21'
# 进行强制转换
# print(type(int(shuzi1)))
print(type(float(shuzi1)))

info1 = [14,"abc",10.2,14]
print(info1)
print(set(info1))
print(type(str(info1)))
# print(type(str(info1)))

# 转换为集合（集合中元素不能重复：可以去重set）
info2 = [11, 22, 33, 11, 11, 11, 33, 44]
print(set(info2))
print(type(set(info2)))

